#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define pd(n) printf("%d", (n))
typedef long long int ll;
using namespace std;
typedef pair<int,int> PII;
//---------------------------------------------------------------------------//
const int N = 30;
int row[N],col[N];
int n;
vector<PII> path;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
bool st[N][N];

bool check()
{
    for(int i=0;i<n;i++)
        if(row[i] || col[i]) return false;
    return true;
}

void dfs(int x,int y)
{
    row[x]--,col[y]--;
    st[x][y]=true;
    path.push_back({x,y});

    if(row[x]<0 || col[y]<0) return ;


    if(x==n-1 && y==n-1 && check())//到终点
    {

        for(int i=0;i<path.size();i++)//检查
            cout<<n*path[i].first+path[i].second<<' ';
        exit(0);
        return ;
    }

    for(int i=0;i<4;i++)
    {
        int a=x+dx[i],b=y+dy[i];
        if(a<0 ||a>=n ||b<0 ||b>=n)  continue;
        if(st[a][b]) continue;
        dfs(a,b);
        //恢复状态
        path.pop_back();
        row[a]++,col[b]++;
        st[a][b]=false;
    }

}

int main()
{
    sd(n);
    for(int i=0;i<n;i++) sd(col[i]);//行
    for(int i=0;i<n;i++) sd(row[i]);
    dfs(0,0);
    return 0;
}

